#pragma once
#ifndef P1528_H
#define P1528_H

// 寻找存放的最少瓶子，n个无限容量瓶子寻找少于等于k个时候需要添加多少
// 使用到了 n & -n：找到最低位的1，很好的表示了多少个瓶子需要添加
// 其中系统内置函数__builtin_popcount用来统计二进制中1的个数
int find_min_k(int n, int k)
{
    int ret = 0;
    while (__builtin_popcount(n) > k) ret += n & -n; n += n & -n;
    return ret;
}

#endif